#pragma once

#include <string>
#include <vector>
#include "XMLAttribute.h"

namespace XMLSAX
{
	namespace Common
	{
		class __declspec(dllexport) XMLElement
		{
		private:
			std::wstring _elementName;
			std::wstring _elementChars;
			std::vector<XMLAttribute *> _elementAttributes;

		public:
			XMLElement();
			virtual ~XMLElement();

			const std::wstring& Name() const;
			void SetName(const std::wstring& name);

			const std::wstring& Value() const;
			void SetValue(const std::wstring& value);

			const std::vector<XMLAttribute *>& Attributes() const;
			std::vector<XMLAttribute *>& accessAttributes();
			void AddAttribute(XMLAttribute *attribute);

#ifdef _DEBUG
			void printElement();
#endif
		};
	}
}